package com.liming.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liming.common.pojo.dto.PageDTO;
import com.liming.common.pojo.dto.product.AddBrandDTO;
import com.liming.common.pojo.dto.product.UpdateBrandDTO;
import com.liming.common.pojo.entity.product.Brand;
import com.liming.common.pojo.vo.PageVO;
import com.liming.common.pojo.vo.product.BrandVO;

import java.util.List;

/**
 * @author liming
 * @date 2025/1/15
 */
public interface BrandMircoService extends IService<Brand> {

    /**
     * 获取精选品牌
     *
     * @return 精选品牌列表
     */
    List<BrandVO> selectedBrand();

    /**
     * 新增品牌
     *
     * @param dto 品牌参数
     * @return Boolean
     */
    Boolean saveBrand(AddBrandDTO dto);

    /**
     * 分页品牌列表
     *
     * @param pageDTO 分页参数
     * @return 分页结果
     */
    PageVO<BrandVO> pageBrand(PageDTO pageDTO, String name);

    /**
     * 品牌详情
     *
     * @param id 品牌ID
     * @return 品牌VO
     */
    BrandVO get(Long id);

    /**
     * 根据品牌名称获取品牌
     *
     * @param name 品牌名称
     * @return 品牌VO
     */
    BrandVO getByName(String name);

    /**
     * 更新品牌
     *
     * @param updateBrandDTO 更新品牌参数
     * @return Boolean
     */
    Boolean updateBrand(UpdateBrandDTO updateBrandDTO);

    /**
     * 更新品牌精选
     *
     * @param id 品牌id
     * @return Boolean
     */
    Boolean updateSelectedById(Long id);
}
